package xyz.xuminghai.javafx_learn.scene.shape.shape3D;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SceneAntialiasing;
import javafx.scene.layout.HBox;
import javafx.scene.shape.Box;
import javafx.scene.shape.CullFace;
import javafx.scene.shape.DrawMode;
import javafx.stage.Stage;

/**
 * 2023/8/15 15:22 星期二<br/>
 * Box类定义具有指定大小的 3 维盒子。 Box是使用给定深度、宽度和高度创建的 3D 几何图元。它以原点为中心。
 *
 * @author xuMingHai
 */
public class BoxApp extends Application {

    private final Group root = new Group();


    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void init() {
        Box box1 = new Box(100.0, 100.0, 100.0);
        // 剔除面
        box1.setCullFace(CullFace.NONE);
        // 绘制模式
        box1.setDrawMode(DrawMode.LINE);

        Box box2 = new Box(100.0, 100.0, 100.0);

        root.getChildren().add(new HBox(100.0, box1, box2));
        root.relocate(100.0, 100.0);
    }

    public void start(Stage primaryStage) {
        primaryStage.setTitle(getClass().getSimpleName());
        Scene scene = new Scene(root, 800, 600, true, SceneAntialiasing.BALANCED);
        // 设置透视相机
        scene.setCamera(new PerspectiveCamera());
        primaryStage.setScene(scene);
        primaryStage.show();
    }


}
